Reflective Parallel Programming Extensible and High-Level Control of Runtime, Compiler, and Application Interaction
نویسندگان
چکیده
Thread support in most languages is opaque and lowlevel. Primitives like wait and signal do not allow users to determine the relative ordering of statements in different threads in advance. In this paper, we extend the reflection and metaprogramming facilities of object-oriented languages to cover parallel program schedules. The user can then access objects representing the extant threads or other parallel tasks. These objects can be used to modify or query happens before relations, locks, and other highlevel scheduling information. These high-level models enable users to design their own parallel abstractions, visualizers, safety checks, and other tools in ways that are not possible today. We discuss one implementation of this technique, the intervals library, and show how the presence of a firstclass, queryable program schedule allows us to support a flexible data race protection scheme. The scheme supports both static and dynamic checks and also permits users to define their own “pluggable” safety checks based on the reflective model of the program schedule.
منابع مشابه
The Nexus Task-parallel Runtime System the Nexus Task-parallel Runtime System
A runtime system provides a parallel language compiler with an interface to the low-level facilities required to support interaction between concurrently executing program components. Nexus is a portable runtime system for task-parallel programming languages. Distinguishing features of Nexus include its support for multiple threads of control, dynamic processor acquisition, dynamic address spac...
متن کاملHigh Level Parallel Programming: The Illinois Concert System
Programmers of concurrent applications are faced with complex performance trade-oos, since data distribution and concurrency management exacerbate the diiculty of building large, complex applications. To address these challenges, the Illinois Concert system provides a global namespace, implicit concurrency control and granularity management, implicit storage management, and object-oriented prog...
متن کاملNexus: Runtime Support for Task-Parallel Programming Languages
A runtime system provides a parallel language compiler with an interface to the low-level facilities required to support interaction between concurrently executing program components. Nexus is a portable runtime system for taskparallel programming languages. Distinguishing features of Nexus include its support for multiple threads of control, dynamic processor acquisition, dynamic address space...
متن کاملThe Nexus Task-parallel Runtime System
A runtime system provides a parallel language compiler with an interface to the low-level facilities required to support interaction between concurrently executing program components. Nexus is a portable runtime system for task-parallel programming languages. Distinguishing features of Nexus include its support for multiple threads of control, dynamic processor acquisition, dynamic address spac...
متن کاملTAU : A Portable Parallel Program AnalysisEnvironment for pC + + 1
The realization of parallel language systems that ooer high-level programming paradigms to reduce the complexity of application development, scalable runtime mechanisms to support variable size problem sets, and portable compiler platforms to provide access to multiple parallel architectures, places additional demands on the tools for program development and analysis. The need for integration o...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
دوره شماره
صفحات -
تاریخ انتشار 2010